package main

import (
	"fmt"
	"os"
	"path"
)

func main()  {
	fpath := "D:\\go\\go\\go-Gin学习"
	treedir(fpath)
}


func treedir(fpath string){
	// 获取fileinfo
	if finfo,err := os.Stat(fpath); err == nil {
		// 判断是不是目录 如果不是目录而是文件  打印文件path并跳出递归
		if !finfo.IsDir() {
			fmt.Println("|-",fpath)
			return
		}else{
			// 是目录的情况 打印目录path
			fmt.Println("|",fpath)
			f,_ := os.Open(fpath) // 通过目录path open一个file
			defer f.Close()
			names,_ := f.Readdirnames(0)  // 通过file的Readdirnames 拿到当前目录下的所有filename
			for _,name := range names{
				newpath := path.Join(fpath,name) // 遍历names 拼接新的fpath
				treedir(newpath)  // 递归
			}
		}
	}
}




